/*
 * Copyright (C) 2016 Bartosz Schiller.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.ashlikun.pdfview.source

import android.content.Context
import android.graphics.pdf.PdfRenderer
import android.net.Uri
import com.ashlikun.pdfview.renderer.IPdfRenderer
import com.ashlikun.pdfview.renderer.PdfSystemRenderer
import com.ashlikun.pdfview.renderer.PdfiumRenderer
import java.io.IOException

class UriSource(private val uri: Uri) : DocumentSource {
    @Throws(IOException::class)
    override fun create(context: Context, pdfRenderer: IPdfRenderer, password: String?): Any? {
        val pfd = context.contentResolver.openFileDescriptor(uri, "r")
        if (pdfRenderer is PdfiumRenderer) {
            return pdfRenderer.pdfiumCore.newDocument(pfd, password)
        } else if (pdfRenderer is PdfSystemRenderer) {
            return PdfRenderer(pfd!!)
        }
        throw IOException("未发现")
    }
}
